﻿#define _CRT_SECURE_NO_WARNINGS 1
// 原题连接：https://www.nowcoder.com/practice/fbc5dad3e215457fb82a3ae688eb7281?tpId=230&tqId=39768&ru=/exam/oj

/*
题目描述：
假设你有一个数组prices，长度为n，其中prices[i]是某只股票在第i天的价格，请根据这个价格数组，返回买卖股票能获得的最大收益
1. 你可以多次买卖该只股票，但是再次购买前必须卖出之前的股票
2. 如果不能获取收益，请返回0
3. 假设买入卖出均无手续费

数据范围：
0
≤
𝑛
≤
1
×
1
0
5
0≤n≤1×10
5
  ，
1
≤
𝑝
𝑟
𝑖
𝑐
𝑒
𝑠
[
𝑖
]
≤
1
0
4
1≤prices[i]≤10
4

要求：空间复杂度
𝑂
(
𝑛
)
O(n)，时间复杂度
𝑂
(
𝑛
)
O(n)
进阶：空间复杂度
𝑂
(
1
)
O(1)，时间复杂度
𝑂
(
𝑛
)
O(n)
输入描述：
第一行输入一个正整数 n ，表示数组 prices 的长度
第二行输入 n 个正整数，表示数组中prices的值
输出描述：
输出最大收益
示例1
输入：
7
8 9 2 5 4 7 1
复制
输出：
7
复制
说明：
在第1天(股票价格=8)买入，第2天(股票价格=9)卖出，获利9-8=1
在第3天(股票价格=2)买入，第4天(股票价格=5)卖出，获利5-2=3
在第5天(股票价格=4)买入，第6天(股票价格=7)卖出，获利7-4=3
总获利1+3+3=7，返回7

示例2
输入：
5
5 4 3 2 1
复制
输出：
0
复制
说明：
由于每天股票都在跌，因此不进行任何交易最优。最大收益为0。
示例3
输入：
5
1 2 3 4 5
复制
输出：
4
复制
说明：
第一天买进，最后一天卖出最优。中间的当天买进当天卖出不影响最终结果。最大收益为4。	
*/

#include <iostream>
using namespace std;
// 开始解题：
// 方法——贪心
int main() {
    int n = 0;
    int ret = 0;
    int pre = 0;
    scanf("%d", &n);
    if (n == 0) {
        cout << 0 << endl;
        return 0;
    }
    scanf("%d", &pre);
    int x = 0;
    // 只要有得赚，那就赚
    for (int i = 1; i < n; i++) {
        scanf("%d", &x);
        if (x > pre) {
            ret += x - pre;
        }
        pre = x;
    }
    cout << ret << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")